/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package compra.dao;

import compra.modelado.Usuario;
import compra.util.UsuarioHibernateUtil;
import java.util.List;
import org.hibernate.Session;

/**
 *
 * @author eric
 */
public class UsuarioDAOImplement implements UsuarioDAO{

    @Override
    public void insertar(Usuario usuario) {
        Session session = UsuarioHibernateUtil.getSessionFactory().openSession();
        try {
            session.beginTransaction();
            session.save(usuario);
            session.beginTransaction().commit();                        
        } catch (Exception ex) {
            System.out.println("Error al insertar" + ex.toString());
            session.beginTransaction().rollback();
        }
        finally{
            session.close();
        }
    }

    @Override
    public void actualizar(Usuario usuario) {
        Session session = UsuarioHibernateUtil.getSessionFactory().openSession();
        try {
            session.beginTransaction();
            session.update(usuario);
            session.beginTransaction().commit();                        
        } catch (Exception ex) {
            System.out.println("Error al actualizar" + ex.toString());
            session.beginTransaction().rollback();
        }
        finally{
            session.close();
        }
    }

    @Override
    public void eliminar(Usuario usuario) {
        Session session = UsuarioHibernateUtil.getSessionFactory().openSession();
        try {
            session.beginTransaction();
            session.delete(usuario);
            session.beginTransaction().commit();                        
        } catch (Exception ex) {
            System.out.println("Error al eliminar" + ex.toString());
            session.beginTransaction().rollback();
        }
        finally{
            session.close();
        }
    }

    @Override
    public List<Usuario> buscar_usuario() {
        Session session = UsuarioHibernateUtil.getSessionFactory().openSession();
        return session.createQuery("from Usuario").list();
    }

    @Override
    public Usuario buscar_id(Integer idUsuario) {
        Session session = UsuarioHibernateUtil.getSessionFactory().openSession();
        return (Usuario)session.load(Usuario.class, idUsuario);
    }
    
}
